package main

import "fmt"

//	func Add(a, b int) int {
//		return a + b
//	}

//func Add(a, b interface{}) interface{} {
//	switch a.(type) {
//	case int:
//		return a.(int) + b.(int)
//	}
//	case float32:
//		return a.(float32) + b.(float32)
//	}
//	return nil
//}

// 泛型方法
// 泛型不支持switch类型断言 T.(type)，可以使用反射（不建议使用，绕回去了）
func Add[T int | float32](a, b T) T {
	return a + b
}

func main() {
	fmt.Println(Add(1, 2))
}
